package com.kyg.tjtoolmanager.driver;

import com.sun.jna.Callback;
import com.sun.jna.Library;
import com.sun.jna.Native;
import com.sun.jna.Pointer;

public interface UHFRFIDDriver extends Library {

    interface InventoryTagCallback extends Callback {
        void onTagCallback(Pointer data, int length);
    }
    UHFRFIDDriver rfidDriver = Native.load("UHFRFIDDriver",UHFRFIDDriver.class);

    //    int UHF_RFID_Init(String dev, int baudrate);
    UDevice UHF_RFID_Init(String dev, int baudrate);

    /**
     * 初始化网络连接, 连接超时时间为10s
     * @param ip
     * @param port
     * @return
     */
    UDevice UHF_RFID_NetInit(String ip, int port);
    /*********************************************************************
     *函数名称：UHF_RFID_Reg_InvTagCallBack(UDevice* pDev, void* call)
     *函数功能：注册寻标签结果回调函数
     *参    数：*pDev -- 设备指针
     *call -- 回调函数
     *返    回：无
     **********************************************************************/
    void UHF_RFID_Reg_InvTagCallBack(UDevice pDev, InventoryTagCallback call);

    /*********************************************************************
     *函数名称：UHF_RFID_IventoryContinuity
     *函数功能：连续寻标签
     *参    数：*pDev -- 设备指针
     times -- 寻标签次数，连续寻标签次数范围为1~0xFFFF，times=0时无限次寻标签
     *返    回：0 -- 成功
     *          其它值 -- 失败
     **********************************************************************/
    int UHF_RFID_IventoryContinuity(UDevice pDev, short times);


    /*********************************************************************
     *函数名称：UHF_RFID_StopInventory
     *函数功能：停止连续寻标签
     *参    数：*pDev -- 设备指针
     *返    回：0 -- 成功
     *          其它值 -- 失败
     **********************************************************************/
    int UHF_RFID_StopInventory(UDevice pDev);

}
